package com.hzncc.flowable_diboot.project_contracts.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.diboot.core.binding.query.BindQuery;
import com.diboot.core.binding.query.Comparison;
import com.diboot.core.entity.BaseModel;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* 项目类合同回款计划 Entity 定义
* @author MyName
* @version 1.0
* @date 2024-09-25
* Copyright © MyCorp
*/

@TableName("mdl_project_payment_collection_plan")
@Getter @Setter @Accessors(chain = true)
public class ProjectPaymentCollectionPlan extends BaseModel {
    private static final long serialVersionUID = 1374795765698835976L;

    /**
     * 租户
     */
    @NotNull(message = "租户不能为空")
    @TableField()
    private String tenantId;

    /**
     * 计划回款日期
     */
    @TableField()
    private LocalDateTime planDate;

    /**
     * 计划回款金额
     */
    @TableField()
    private BigDecimal planAmount;

    /**
     * 合同回款说明
     */
    @Length(max=200, message="合同回款说明长度应小于200")
    @BindQuery(comparison = Comparison.LIKE)
    @TableField()
    private String paymentInstructions;

    /**
     * 出口退税说明
     */
    @Length(max=200, message="出口退税说明长度应小于200")
    @BindQuery(comparison = Comparison.LIKE)
    @TableField()
    private String exportTaxRefundInstructions;

    /**
     * 公司现在外销抵税计算
     */
    @Length(max=200, message="公司现在外销抵税计算长度应小于200")
    @BindQuery(comparison = Comparison.LIKE)
    @TableField()
    private String exportTaxCreditCalculation;

    /**
     * 综合毛利
     */
    @Length(max=100, message="综合毛利长度应小于100")
    @BindQuery(comparison = Comparison.LIKE)
    @TableField()
    private String grossMargin;

    /**
     * 毛利率
     */
    @Length(max=100, message="毛利率长度应小于100")
    @BindQuery(comparison = Comparison.LIKE)
    @TableField()
    private String grossProfitMargin;

    /**
     * 项目类合同id
     */
    @Length(max=32, message="项目类合同id长度应小于32")
    @BindQuery(comparison = Comparison.LIKE)
    @TableField()
    private String contractId;


}